package com.hbxs.folder.bean;

import com.alibaba.fastjson.annotation.JSONField;
import com.github.tobato.fastdfs.domain.fdfs.MetaData;
import lombok.Data;

import java.io.InputStream;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Set;

/**
 * 文件信息类
 *  主从文件是指文件ID有关联的文件，一个主文件可以对应多个从文件
 *  主文件ID = 主文件名 + 主文件后缀名
 *  从文件ID = 主文件名 + 从文件前缀名 + 从文件后缀名
 *
 */
@Data
public class FileBean {

    /**
     * 文件名
     */
    private String name;
    /**
     * 从文件前缀 如：50*50
     */
    private String prefixName;
    /**
     * 后缀名 例如txt、jpg
     */
    private String suffixName;
    /**
     * 大小 单位b
     */
    private Long size;
    /**
     * 路径
     */
    private String path;
    /**
     * 分组
     */
    private String group;
    /**
     * 文件类型 1、图片 2、视频 3、文档 4、音乐 5、压缩包 6、其他
     */
    private Integer type;
    /**
     * 文件元数据(MetaData)
     */
    private Set<MetaData> metaDataSet;
    /**
     * 文件输入流
     */
    @JSONField(serialize=false)
    private InputStream inputStream;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 校验码
     */
    private Integer crc32;
    /**
     * ip地址
     */
    private String sourceIpAddr;
    /**
     * 从文件
     */
    private List<FileBean> fileBeanList;

    /**
     * 获取文件大小单位mb
     * @return
     */
    public String getSizeMb(){
        BigDecimal size = new BigDecimal(this.size).divide(new BigDecimal(1024*1024),3,BigDecimal.ROUND_UP);
        return size.toString();
    }
}
